package chapter03.s07static.example14;

// static
// 本质：静态的属性、方法，属于类的。在内存里只保留1份。
// 操作：类名.属性、类名.方法
//
// 1. static属性 被所有对象共享

// 将school定义为静态成员变量
class Student {
    String name;                                            // 定义name属性
    int age;                                                // 定义age属性
    static String school = "A大学";                        // 定义school属性

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void info() {
        System.out.println("姓名:" + this.name + "，年龄:" + this.age + "，学 校:" + school);
    }
}

public class Example14 {
    public static void main(String[] args) {
        Student stu1 = new Student("张三", 18);        // 创建学生对象
        Student stu2 = new Student("李四", 19);
        Student stu3 = new Student("王五", 20);

        //只修改了一个stu1对象的学校属性，stu1和stu2对象的school属性内容都发生了变化
        //说明使用static声明的属性是对所有对象共享的。
        stu1.school = "B大学";
        stu1.info();
        stu2.info();
        stu3.info();
    }
}
